package nl.saxion.syntaxis.model;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import nl.saxion.syntaxis.model.activiteiten.Activiteit;
import nl.saxion.syntaxis.model.activiteiten.Comissie;
import nl.saxion.syntaxis.model.financieel.Product;
import nl.saxion.syntaxis.model.financieel.Transactie;
import nl.saxion.syntaxis.model.leden.ActiefLid;
import nl.saxion.syntaxis.model.leden.AlumniLid;
import nl.saxion.syntaxis.model.leden.ExternLid;
import nl.saxion.syntaxis.model.leden.Lid;
import nl.saxion.syntaxis.model.leden.LidImpl;
import nl.saxion.syntaxis.model.locaties.Locatie;
import nl.saxion.syntaxis.model.sponsor.Sponsor;

public class Syntaxis {

	// ---------- Leden ----------
	private List<Lid> leden = new ArrayList<Lid>();

	// ------- Financieel --------
	private List<Product> producten;
	private List<Transactie> transacties;

	// ------ Activiteiten -------
	private List<Activiteit> activiteiten;
	private List<Comissie> comissies;
	private List<Locatie> locaties;

	// -------- Sponsors ---------
	private List<Sponsor> sponsors;

	public void addLidImpl(int id, String naam) {
		Lid lid = new LidImpl(id, naam);
		leden.add(lid);
	}

	public void addActiefLid(int id, String naam) {
		Lid lid = new ActiefLid(id, naam);
		leden.add(lid);
	}

	public void addExternLid(int id, String naam) {
		Lid lid = new ExternLid(id, naam);
		leden.add(lid);
	}

	public void addAlumniLid(int id, String naam) {
		Lid lid = new AlumniLid(id, naam);
		leden.add(lid);
	}

	public void printLeden() {
		for (Lid lid : leden) {
			System.out.println(lid.getId() + ": " + lid.getNaam() + " korting "
					+ lid.getKorting() + "%");
		}
	}

	public void addProduct() {
		Product product = new Product();
		producten.add(product);
	}

	public void searchLidByName(String name) {
		Iterator<Lid> itr = leden.iterator();
		while (itr.hasNext()) {
			Lid lid = (Lid) itr.next();
			if (lid.getNaam().equals(name)) {
				System.out.println(lid.getId() + ": " + lid.getNaam()
						+ " korting " + lid.getKorting() + "%");
			}
		}
	}

}
